package com.hskn.hss.module.alarmHandleLog.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hskn.hss.core.annotation.Excel;
import com.hskn.hss.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.io.Serializable;
import java.util.Date;

/**
 * 报警处理记录对象 alarm_handle_log
 *
 * @author ccm
 * @date 2021-09-07
 */
@Data
public class AlarmHandleLog implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private String id;

    /**
     * 主体id
     */
    @Excel(name = "主体id")
    private String subjectId;

    /**
     * 主体名称
     */
    @Excel(name = "主体名称")
    private String subjectName;

    /**
     * 主体类型id
     */
    @Excel(name = "主体类型id")
    private String subjectTypeId;

    /**
     * 主体类型名称
     */
    @Excel(name = "主体类型名称")
    private String subjectTypeName;

    /**
     * 所属机构id
     */
    @Excel(name = "所属机构id")
    private String depId;

    /**
     * 所属机构名称
     */
    @Excel(name = "所属机构名称")
    private String depName;

    /**
     * 报警类型id
     */
    @Excel(name = "报警类型id")
    private String violationTypeId;

    /**
     * 报警类型名称
     */
    @Excel(name = "报警类型名称")
    private String violationTypeName;

    /**
     * 处理方式（已处理）
     */
    @Excel(name = "处理方式", readConverterExp = "已处理")
    private String dealType;

    /**
     * 处理人uid
     */
    @Excel(name = "处理人uid")
    private String dealUid;
    /**
     * 处理人名称
     */
    @Excel(name = "处理人名称")
    private String dealUName;
    /**
     * 处理人头像
     */
    @TableField(exist = false)
    private String dealUAvatar;

    /**
     * 处理备注
     */
    @Excel(name = "处理备注")
    private String dealRemark;

    /**
     * 报警内容
     */
    @Excel(name = "报警内容")
    private String content;

    /**
     * 报警开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "报警开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date violationStartTime;

    /**
     * 报警结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "报警结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date violationEndTime;

    /**
     * 是否持续报警(0不持续  1持续)
     */
    @Excel(name = "是否持续报警(0不持续  1持续)")
    private Integer isKeep;

    /**
     * 报警地点 经度
     */
    @Excel(name = "报警地点 经度")
    private String lng;

    /**
     * 报警地点 纬度
     */
    @Excel(name = "报警地点 纬度")
    private String lat;

    /**
     * 报警时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "报警时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date violationTime;

    /**
     * 位置地点名称
     */
    @Excel(name = "位置地点名称")
    private String address;

    /**
     * 报警时长 秒
     */
    @Excel(name = "报警时长 秒")
    private String duration;

    /**
     * 标记（emp：人员，car:车辆）
     */
    @Excel(name = "标记", readConverterExp = "emp：人员，car:车辆")
    private String violationSign;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /** 报警id */
    @Excel(name = "报警Id")
    private String alarmId;

    public AlarmHandleLog() {
    }

    public AlarmHandleLog(String id, String alarmId, String subjectId, String subjectName, String subjectTypeId, String subjectTypeName, Date createTime, String depId, String depName, String violationTypeId, String violationTypeName, String dealType, String dealUid, String dealUName, String dealRemark, String content, Date violationStartTime, Date violationEndTime, Integer isKeep, String lng, String lat, Date violationTime, String address, String duration, String violationSign) {
        this.id = id;
        this.alarmId = alarmId;
        this.subjectId = subjectId;
        this.subjectName = subjectName;
        this.subjectTypeId = subjectTypeId;
        this.subjectTypeName = subjectTypeName;
        this.depId = depId;
        this.depName = depName;
        this.violationTypeId = violationTypeId;
        this.violationTypeName = violationTypeName;
        this.dealType = dealType;
        this.dealUid = dealUid;
        this.dealUName = dealUName;
        this.dealRemark = dealRemark;
        this.content = content;
        this.violationStartTime = violationStartTime;
        this.violationEndTime = violationEndTime;
        this.isKeep = isKeep;
        this.lng = lng;
        this.lat = lat;
        this.violationTime = violationTime;
        this.address = address;
        this.duration = duration;
        this.violationSign = violationSign;
        this.createTime=createTime;
    }

}
